Boolean differential calculus